package com.lxl.testHd.myInputFormat.one;

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.JobContext;
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

import java.io.IOException;

/**
 * @author ：e_lixilin
 * @date ：2022/2/24 9:09
 * @description：
 * @modified By：自定义 inputformat
 */
public class SelfInputFormat extends FileInputFormat<Text, Text> {
    @Override
    public RecordReader<Text, Text> createRecordReader(InputSplit split, TaskAttemptContext context)
            throws IOException, InterruptedException {
        //自定义RecordReader：每次读取一个文件（key:文件名，value:读取到的文件）
        SelfRecordReader recordReader = new SelfRecordReader();
        recordReader.initialize(split, context);
        return recordReader;
    }

    @Override
    protected boolean isSplitable(JobContext context, Path filename) {
        // 读取到文件后，不用拆分
        return false;
    }
}
